-- Events.lua — bootstrap sûr des dépendances (minimap, options, cvars, auto thresholds)
local ADDON, DFFT = ...
if not DFFT or not DFFT.DB then return end
local DB = DFFT.DB

local f = CreateFrame("Frame")

-- Ce qui doit se faire à la connexion (sans ré-appliquer les defaults)
local function AfterLogin()
  -- CVar (masquage FCT Blizzard)
  if DFFT.ApplyDefaultCombatTextSetting then DFFT.ApplyDefaultCombatTextSetting() end

  -- Minimap button si dispo
  if DFFT.MinimapButton_Create then DFFT.MinimapButton_Create() end
  if DFFT.MinimapButton_RefreshVisibility then DFFT.MinimapButton_RefreshVisibility() end
end

f:SetScript("OnEvent", function(_, event, ...)
  if event == "ADDON_LOADED" then
    local name = ...
    if name == ADDON then
      -- Applique les defaults une seule fois au chargement de l'addon (merge non destructif)
      if DFFT.ApplyDefaults then DFFT.ApplyDefaults() end

      -- Auto thresholds : seed initial uniquement si activé (par défaut oui)
      if (DB.autoThresholds ~= false) and DFFT.Auto_InitSeed then
        DFFT.Auto_InitSeed()
      end
    end

  elseif event == "PLAYER_LOGIN" then
    -- Réglages runtime et intégrations (pas de re-defaults ici)
    AfterLogin()

  elseif event == "PLAYER_ENTERING_WORLD" then
    -- Mise à jour minimap pos/visibilité si présent
    if DFFT.MinimapButton_UpdatePosition then DFFT.MinimapButton_UpdatePosition() end
    if DFFT.MinimapButton_RefreshVisibility then DFFT.MinimapButton_RefreshVisibility() end
  end
end)

f:RegisterEvent("ADDON_LOADED")
f:RegisterEvent("PLAYER_LOGIN")
f:RegisterEvent("PLAYER_ENTERING_WORLD")
